feat(cache): fingerprint getEnvs match sets#450
Merged
Conversation
This was referenced Jun 13, 2026
Member
Author
This was referenced Jun 13, 2026
wan9chi
force-pushed
the
graphite-base/450
branch
from
June 13, 2026 11:11
2f508b0 to
e078bf2
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 13, 2026 11:11
8bf068d to
2f128bc
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 13, 2026 14:23
2f128bc to
5a8cde0
Compare
wan9chi
force-pushed
the
graphite-base/450
branch
from
June 13, 2026 14:23
e078bf2 to
6e58a88
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 13, 2026 14:27
5a8cde0 to
4990502
Compare
wan9chi
force-pushed
the
graphite-base/450
branch
from
June 13, 2026 14:27
6e58a88 to
01ea610
Compare
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
from
June 13, 2026 14:37
01ea610 to
399692e
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
2 times, most recently
from
June 13, 2026 15:58
9705c8f to
9477718
Compare
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
from
June 13, 2026 15:58
399692e to
25a3219
Compare
wan9chi
marked this pull request as ready for review
June 13, 2026 15:59
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
from
June 13, 2026 16:01
25a3219 to
97aa3f0
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 13, 2026 16:01
9477718 to
a183557
Compare
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
from
June 13, 2026 16:03
97aa3f0 to
32ac35f
Compare
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
from
June 14, 2026 08:34
983bc76 to
930e359
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 14, 2026 08:34
869ce93 to
9cb33a2
Compare
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
from
June 14, 2026 08:48
930e359 to
21b2fc2
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 14, 2026 08:48
9cb33a2 to
3f5f6b4
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 14, 2026 09:14
3f5f6b4 to
d8da9c9
Compare
wan9chi
force-pushed
the
graphite-base/450
branch
from
June 14, 2026 09:14
21b2fc2 to
05ac2d2
Compare
wan9chi
force-pushed
the
graphite-base/450
branch
from
June 14, 2026 09:49
05ac2d2 to
a25bdcd
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 14, 2026 09:49
d8da9c9 to
cf5f1ad
Compare
wan9chi
force-pushed
the
graphite-base/450
branch
from
June 14, 2026 10:04
a25bdcd to
2ad156b
Compare
wan9chi
force-pushed
the
infra-get-envs-fingerprint
branch
from
June 14, 2026 10:04
cf5f1ad to
2a8601f
Compare
wan9chi
force-pushed
the
infra-get-envs-ipc
branch
2 times, most recently
from
June 14, 2026 10:08
b54a4e1 to
3752763
Compare
Motivation: Bulk env reads are only cache-safe if the cache remembers the entire matched env set. Without match-set fingerprinting, changing a matching env value, adding a new matching name, or removing one could replay stale output. Scope: Make the getEnvs tracked option meaningful, record tracked match sets in IPC reports, store them in the post-run fingerprint, validate changed/added/removed matches during cache lookup, and render env-specific miss messages. This PR does not add the real Vite fixture. Verification: - cargo test -p vite_task_server --test integration - UPDATE_SNAPSHOTS=1 cargo test -p vite_task_bin --test e2e_snapshots fetch_envs_tracks_glob_match_set -- --ignored - cargo test -p vite_task_bin --test e2e_snapshots fetch_envs_tracks_glob_match_set -- --ignored
Co-authored-by: GPT-5 Codex <codex@openai.com>
Co-authored-by: GPT-5 Codex <codex@openai.com>
Co-authored-by: GPT-5 Codex <codex@openai.com>
Member
Author
This was referenced Jun 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Motivation
Bulk env reads are only cache-safe if the cache remembers the entire matched env set. Without match-set fingerprinting, changing a matching env value, adding a new matching name, or removing one could replay stale output.
Scope
Record every
getEnvsmatch set in IPC reports, store SHA-256 hashes for the matched env values in the post-run fingerprint, validate changed/added/removed matches during cache lookup, and render env-specific miss messages without exposing values. This follows the env hashing model from #455 and raises a post-run fingerprint error instead of silently dropping non-UTF-8 matched env names or values.This PR intentionally does not add the
trackedoption; everygetEnvsrequest is fingerprinted here. The opt-out for bothgetEnvandgetEnvsis split into the next PR. This PR also does not add the real Vite fixture.Verification
cargo check -p vite_taskcargo test -p vite_task_server --test integrationcargo test -p vite_task_bin --test e2e_snapshots fetch_envs_tracks_glob_match_set -- --ignoredcargo clippy --locked --all-targets --all-features -- -D warnings